#include "App.h"

#if BUSINESS == BUSINESS_TEST

#include "bsp_touch_key.h"
#include "bsp_dot_matrix.h"
#include "bsp_ws2812.h"
#include "bsp_led_188.h"
#include "bsp_adkey.h"
#include "bsp_ec11.h"


void Test_init() {
    // Touch key
	//    TK_init();   sda: pb7 scl: pb6  int: pb8

	// dot matrix  // clk:  PA5     mosi: PA7  cs: pa6

//    DM_init();
//	  
//    DM_off_all();

    // ws2812  PB15 mosi
    ws2812_init();
    ws2812_set_color(0, 0x110000);
    ws2812_set_color(1, 0x001100);
    ws2812_set_color(2, 0x000011);
    ws2812_set_color(3, 0x111111);
    
    ws2812_display();
   
	// led188  1:c5 2:a7 3:a5 4:a3 5:a1
    LED188_init();
    LED188_set_charge(1);
    LED188_set_percent(0);
    LED188_set_num(0);
    
    // ADKey  PA2
    ADkey_init(); 

	// EC11 Test
	EC11_init();
    
    printf("Test start\r\n");
}
    
void Test_ws2812() {
    static uint8_t i = 0;
    
    if (i == 0) {
        ws2812_set_color(0, 0x220000);
        ws2812_set_color(1, 0x002200);
        ws2812_set_color(2, 0x000022);
        ws2812_set_color(3, 0x222222);
    } else if(i == 1) {
        ws2812_set_color(0, 0x222222);
        ws2812_set_color(1, 0x220000);
        ws2812_set_color(2, 0x002200);
        ws2812_set_color(3, 0x000022);
    } else if(i == 2) {
        ws2812_set_color(0, 0x000022);
        ws2812_set_color(1, 0x222222);
        ws2812_set_color(2, 0x220000);
        ws2812_set_color(3, 0x002200);
    } else if(i == 3) {
        ws2812_set_color(0, 0x002200);
        ws2812_set_color(1, 0x000022);
        ws2812_set_color(2, 0x222222);
        ws2812_set_color(3, 0x220000);
    }
    i++;
    if(i >= 4) {
        i = 0;
    }
}

void Test_dot_matrix(){
}

void Test_led188_display() {
    LED188_display();
}

void Test_led188_count() {
    static uint8_t i = 0;
    LED188_set_num(i++);
    
    if(i > 100) {
        i = 0;
    }
}

void Test_adkey_scan() {
    ADkey_scan();
}

void TK_on_up(uint8_t i) {
    char c = ' ';
    if(i > 8) {
        if (i == 9) c = '*';
        if (i == 10) c = '0';
        if (i == 11) c = '#';
    } else {
        c = '1' + i;
    }
    printf("tk %c up\r\n", c);
}
void TK_on_down(uint8_t i) {
    char c = ' ';
    if(i > 8) {
        if (i == 9) c = '*';
        if (i == 10) c = '0';
        if (i == 11) c = '#';
    } else {
        c = '1' + i;
    }
    printf("tk %c down\r\n", c);
}

void ADKey_on_down(uint8_t key) {
    printf("adkey %d down\r\n", key + 1);
}

void ADKey_on_up(uint8_t key) {
    printf("adkey %d up\r\n", key + 1);
}


void EC11_on_down() {
	printf("EC11 down\r\n");
}

void EC11_on_up() {
	printf("EC11 up\r\n");
}

void EC11_on_turn(uint8_t is_clockwise) {
	if(is_clockwise) {
		printf("EC11 turn right\r\n");
	} else {
		printf("EC11 turn left\r\n");
	}
}

#endif